#ifndef INPUTMANAGER_2018
#define INPUTMANAGER_2018

#include <functional>
#include <windows.h>

class KeyBoardInputManager
{
private:
    KeyBoardInputManager();
    ~KeyBoardInputManager();

    static KeyBoardInputManager* m_instance;
public:
#define WIN_VKEY_NUMBER  0xFE
    bool m_vkeyDown[WIN_VKEY_NUMBER + 1];
    std::function<void(DWORD)> m_fncDown[WIN_VKEY_NUMBER + 1];
    std::function<void(DWORD)> m_fncUp[WIN_VKEY_NUMBER + 1];

    void keyDown(DWORD key,DWORD lParam);
    void keyUp(DWORD key,DWORD lParam);

    static KeyBoardInputManager* getInstance();
    static void createInstance();
    static void releaseInstance();
};
#endif // INPUTMANAGER_2018
